Object model technology is becoming more popular for building enterprise applications and it is desirable to allow object applications to obtain and manipulate objects in databases where corporate and other data is typically stored. Accordingly, there is a need to efficiently acquire and store objects from a database, and an object caching mechanism is one solution to accomplish this. In this technique, an in-memory object cache may maintain the object read from the database. Then, if the same object is requested, the object is read from the in-memory cache instead of the database. In this manner, objects are acquired more efficiently.
However, if several database clients or several application servers have an in-memory object cache, the in-memory object caches may fall out of synchronization with each other and with the database. This can lead to the increased probability of stale data and potential data corruption.
Refreshing the in-memory cache on a query-by-query basis is one solution to this problem. However, in this approach, every query against the cache must access the database and refresh the cached instances with the database data. By accessing the database in this manner, the efficiency of caching is reduced.
It is therefore desirable to provide a method and system that allow a synchronization of objects caches.